package com.google.code.jtasks.adapters;

import com.google.code.jtasks.connection.TaskRepoId;
import com.google.inject.ImplementedBy;

/**
 * Provides access to the application's {@link RepositoryMetadata}s to {@link ITaskSystemAdapter}
 * implementations. As {@link ITaskSystemAdapter}s should be stateless, they should maintain a reference to
 * the application's {@link IRepositoryMetadataProvider} and store any required task repository state in its
 * {@link RepositoryMetadata}s rather than maintaining references to that state or the
 * {@link RepositoryMetadata}s themselves.
 */
@ImplementedBy(RepositoryMetadataProviderImpl.class)
public interface IRepositoryMetadataProvider
{
	/**
	 * TODO comments
	 * 
	 * @param taskRepoId
	 * @return
	 */
	public RepositoryMetadata<?, ?> getRepositoryMetadata(TaskRepoId taskRepoId);
}
